package SFT;
/**This interface is to be implemented by whoever wants to use the algorithm. The user should
 * implement a function that suits the way in which he wants to use our central function- i.e. if
 * he wants the function to come from a file, or he wants the function to originate from an input
 * stream that is built over time.
 * An example of this would be an XML function, such as the one we implemented in the excercise.
 * The interface Function is supposed to represent a generic function from Akavia's thesis.
 * @author Baruch Weizman, Oren Gilon, Barak Arkis*/
public interface Function {
	/*returns the maximal value that "apply" can receive: the Function is defined on [0, maxVal()]*/
	int maxVal();
	
	/*return the Euclidean norm of the function on the segment [startIndex, endIndex]*/
	double eucNorm(int startIndex, int endIndex);
	
	/*return the Supremal norm of the function on the segment [startIndex, endIndex]*/
	double infNorm(int startIndex, int endIndex);
	
	/*returns f(i)*/
	Complex apply(int i);
	

}
